package Day019_Junit单元测试_NIO.demo3_Buffer类_缓冲区;

import java.nio.ByteBuffer;

/**
 * @author zhangyan
 * @date 2020/5/12 10:30
 */
/*
    创建ByteBuffer对象:(抽象类 用静态方法 不能new)
                方式一：在堆中创建缓冲区：allocate(int capacity)

                方式二：在系统内存创建缓冲区：allocateDirect(int capacity)
                    在堆中创建缓冲区称为：间接缓冲区
                    在系统内存创建缓冲区称为：直接缓冲区

                    间接缓冲区的创建和销毁效率高
                    直接缓冲区的工作效率高

                方式三：通过数组创建缓冲区：wrap(byte[] arr)
                    此种方式创建的缓冲区为：间接缓冲区
 */

public class Test2_Buffer类创建 {
    public static void main(String[] args) {

        //1.在堆中创建 ByteBuffer缓冲数组,容量为10  间接缓冲区
        ByteBuffer b1 = ByteBuffer.allocate(10);

        //2.在系统内存中创建 ByteBuffer缓冲数组,容量为20  直接缓冲区
        ByteBuffer b2 = ByteBuffer.allocateDirect(20);

        //3.通过数组创建缓冲区：wrap(byte[] arr)   间接缓冲区
        byte[] bytes = new byte[10];
        ByteBuffer b3 = ByteBuffer.wrap(bytes);


    }
}
